Lịch sử DES (mã hóa)

Khởi nguyên của thuật toán đã có từ đầu thập niên 1970. Vào năm 1972, sau khi tiến hành nghiên cứu về nhu cầu an toàn máy tính của chính phủ Hoa Kỳ, Cục Tiêu chuẩn Liên bang Hoa Kỳ (National Bureau of Standard - NBS), hiện nay đã đổi tên thành Viện Tiêu chuẩn và Công nghệ Quốc gia Hoa Kỳ (National Institute of Standards and Technology - NIST), đã nhận ra nhu cầu về một tiêu chuẩn của chính phủ dùng để mật mã hóa các thông tin mật/nhạy cảm. Vào ngày 15 tháng 5 năm 1973, sau khi tham khảo với NSA, NBS đưa ra kêu gọi thiết kế một thuật toán mã hóa có thể đáp ứng được các tiêu chuẩn nghiêm ngặt. Tuy nhiên không có đề xuất nào đáp ứng được yêu cầu đề ra. Ngày 27 tháng 8 năm 1974, NBS đưa ra kêu gọi lần thứ hai. Lần này công ty IBM đã đưa ra một đề xuất có thể chấp nhận được. Đề xuất này được phát triển trong những năm 1973-1974 dựa trên một thuật toán đã có từ trước - thuật toán mật mã Lucifer của Horst Feistel. Đội ngũ tại công ty IBM liên quan tới quá trình thiết kế bao gồm: Feistel, Walter Tuchman, Don Coppersmith, Alan Konheim, Carl Meyer, Mike Matyas, Roy Adler, Edna Grossman, Bill Notz, Lynn Smith và Bryant Tuckerman.

Sự tham gia của Cơ quan An ninh quốc gia Hoa Kỳ trong quá trình thiết kế

Ngày 17 tháng 3 năm 1975, đề xuất về DES được công bố trên công báo liên bang Hoa kỳ (Federal Register) để công chúng tham gia ý kiến. Trong năm tiếp theo, hai hội thảo mở rộng được tổ chức để xem xét đề xuất này. Đã có rất nhiều ý kiến chỉ trích được nêu ra, trong đó bao gồm ý kiến của các nhà khoa học tiên phong về mật mã khóa công khai (public-key cryptography) là Martin HellmanWhitfield Diffie về các vấn đề như độ dài khóa và thành phần của thuật toán không được công khai: S-box. Điều sau được xem như là sự can thiệp (không hợp lý) của NSA làm giảm độ an toàn của thuật toán và cho phép NSA (và không ai khác) có thể dễ dàng đọc được thông tin đã được mã hóa. Alan Konheim, một trong những thành viên thiết kế DES, nói rằng: "Chúng tôi đã gửi thiết kế của S-box tới Washington. Khi trở lại thì mọi thứ đã được thay đổi." Trong một báo cáo mật của ủy ban của Thượng viện Hoa Kỳ được cử để điều tra những sửa đổi của NSA công bố năm 1978 đã viết:

"Trong quá trình phát triển DES, NSA thuyết phục IBM rằng độ dài (56 bit) của khóa là đủ an toàn; gián tiếp hỗ trợ sự phát triển cấu trúc của S-box; và chứng nhận rằng thuật toán DES không có điểm yếu về mặt thống kê và toán học."

Tuy nhiên, báo cáo cũng viết:

"NSA không can thiệp vào quá trình thiết kế thuật toán dưới bất kỳ hình thức nào. IBM đã phát minh và thiết kế ra thuật toán, đưa ra các quyết định, và cho rằng độ dài của khóa là nhiều hơn cần thiết cho các ứng dụng thương mại (mục tiêu của DES)."

Một thành viên khác tham gia phát triển DES là Walter Tuchman được cho là đã phát biểu: "Chúng tôi phát triển DES hoàn toàn bên trong IBM và chỉ sử dụng các nhân viên của IBM. NSA đã không ép buộc bất kỳ điều gì!"

Những nghi ngờ về điểm yếu được giấu của S-box được giảm bớt trong thập niên 1990 khi Eli Biham và Adi Shamir công bố những nghiên cứu độc lập về thám mã vi sai (differential cryptanalysis, một trong những phương pháp phổ biến để thám mã các dạng mật mã khối). S-box trong cấu trúc của DES có khả năng chống lại dạng tấn công này hiệu quả hơn so với khi nó được chọn một cách ngẫu nhiên. Điều này có thể là do IBM đã biết về dạng tấn công này từ thập niên 1970. Khả năng này một lần nữa được chứng tỏ vào năm 1994 khi Don Coppersmith công bố những tiêu chuẩn ban đầu của việc thiết kế S-box. Sau khi đảm bảo DES có khả năng chống lại đã được kỹ thuật thám mã vi sai, IBM đã giữ bí mật về nó theo yêu cầu của NSA. Coppersmith cũng giải thích thêm: "Nguyên nhân là vì thám mã vi sai là một kỹ thuật rất hiệu quả và công bố thông tin về nó điều này có thể gây nguy hại cho an ninh quốc gia." Ngay cả Shamir cũng nhìn nhận rằng: "Tôi có thể nói rằng, trái với suy nghĩ của nhiều người, không có bằng chứng về sự can thiệp vào thiết kế làm giảm độ an toàn của DES."

Lý do mà NSA đưa ra để giải thích về việc giảm độ dài khóa từ 64 bit xuống 56 bit là để dành 8 bit cho việc kiểm tra lỗi (parity checking). Những ý kiến chỉ trích cho rằng đây chỉ là nguyên cớ chứ không phải là nguyên nhân thực sự. Nhiều người tin rằng quyết định giảm độ dài khóa xuống 56 bit là để NSA có thể thực hiện thám mã bằng phương pháp bạo lực (brute force attack) trước vài năm so với phần còn lại của thế giới.

DES với vai trò là một tiêu chuẩn

Bất chấp những chỉ trích, DES được chọn làm tiêu chuẩn liên bang (Hoa kỳ) vào tháng 11 năm 1976 và được công bố tại tài liệu có tên là FIPS PUB 46 vào ngày 15 tháng 1 năm 1977 cho phép sử dụng chính thức đối với thông tin không mật. DES tiếp tục được khẳng định là tiêu chuẩn vào các năm 1983, 1988 (với tên FIPS-46-1), 1993 (FIPS-46-2) và 1998 (FIPS-46-3). Lần cuối cùng quy định dùng "Triple DES" (xem thêm ở phần sau). Ngày 26 tháng 5 năm 2002, DES được thay thế bằng AES sau một cuộc thi rộng rãi (xem thêm Quá trình AES). Tuy nhiên, tại thời điểm năm 2004, DES vẫn còn được sử dụng khá phổ biến.

Năm 1994, thêm một phương pháp tấn công khác (trên lý thuyết) được công bố là thám mã tuyến tính. Tuy nhiên thời điểm nhu cầu thay thế DES trở nên thực sự cấp thiết là vào năm 1998 khi một cuộc tấn công bạo lực chứng tỏ rằng DES có thể bị phá vỡ trên thực tế. Các phương pháp thám mã này sẽ được miêu tả kỹ hơn ở phần sau.

Sự xuất hiện của DES đã tạo nên một làn sóng nghiên cứu trong giới khoa học về lĩnh vực mật mã học, đặc biệt là các phương pháp thám mã mã khối. Về điều này, Bruce Schneier viết:

"NSA coi DES là một trong những sai lầm lớn nhất. Nếu họ biết trước rằng chi tiết của thuật toán sẽ được công bố để mọi người có thể viết chương trình phần mềm, họ sẽ không bao giờ đồng ý. DES đã tạo nên nguồn cảm hứng nghiên cứu trong lĩnh vực thám mã hơn bất kỳ điều gì khác: Giới khoa học đã có một thuật toán để nghiên cứu - thuật toán mà NSA khẳng định là an toàn."

Quá trình

NgàySự kiện
15 tháng 5 năm 1973NBS đưa ra lời kêu gọi đầu tiên về một thuật toán mã hóa tiêu chuẩn.
27 tháng 8 năm 1974NBS đưa ra lời kêu gọi thứ hai.
17 tháng 3 năm 1975DES được công bố trên công báo liên bang Hoa kỳ để công chúng đóng góp ý kiến.
Tháng 8, 1976Hội thảo đầu tiên về DES.
Tháng 9, 1976Hội thảo lần hai, bàn về nền tảng toán học của DES.
Tháng 11, 1976DES được phê chuẩn làm tiêu chuẩn chính thức.
15 tháng 1 năm 1977DES được xác nhận làm tiểu chuẩn của FIPS (FIPS PUB 46).
1983DES được công bố lại lần đầu.
1986HBO phát sóng chương trình Videocipher II, một kênh TV mã hóa dựa trên DES.
22 tháng 1 năm 1988DES được xác nhận lần hai với tên FIPS 46-1, thay thế FIPS PUB 46.
1992Biham và Shamir công bố kiểu tấn công thám mã vi sai (trên lý thuyết) với độ phức tạp thấp hơn tấn công bạo lực. Tuy nhiên, kiểu tấn công này đòi hỏi người tấn công lựa chọn 247 văn bản rõ (một điều kiện không thực tế) .
30 tháng 12 năm 1993DES được xác nhận lần ba với tên FIPS 46-2.
1994Thực nghiệm thám mã DES lần đầu tiên được thực hiện với kỹ thuật thám mã tuyến tính .
Tháng 6, 1997Dự án DESCHALL đã phá vỡ được một bản tin mã hóa bằng DES (lần đầu tiên trước công chúng).
Tháng 7, 1998Thiết bị thám mã Deep Crack của tổ chức Electronic Frontier Foundation phá được một khóa của DES trong vòng 56 giờ.
Tháng 1, 1999Deep Crack cùng với distributed.net phá được một khóa của DES trong vòng 22 giờ và 15 phút.
25 tháng 10 năm 1999DES được xác nhận lần thứ tư với tên FIPS 46-3. Lần này phương pháp Triple DES được khuyến cáo sử dụng còn DES chỉ được dùng cho các hệ thống ít quan trọng.
26 tháng 11 năm 2001AES được công bố trong FIPS 197
26 tháng 5 năm 2002AES trở thành tiêu chuẩn
26 tháng 7 năm 2004Việc bãi bỏ FIPS 46-3 (cùng với một số tiêu chuẩn liên quan khác) được đăng trên công báo liên bang Hoa kỳ (http://edocket.access.gpo.gov/2004/04-16894.htm).
19 tháng 5 năm 2005NIST bãi bỏ FIPS 46-3

Tài liệu tham khảo

WikiPedia: DES (mã hóa) http://www.darkside.com.au/bitslice/ http://www.esat.kuleuven.ac.be/~abiryuko/mla.pdf http://www.finallysecure.com/html/index.php?id=107... http://www.google.com/patents?vid=3962539 http://www.research.ibm.com/journal/rd/383/coppers... http://www.quadibloc.com/crypto/co0402.htm http://www.cs.eku.edu/faculty/styer/460/Encrypt/JS... http://www.cs.ut.ee/~helger/crypto/link/block/des.... http://edocket.access.gpo.gov/2004/04-16894.htm http://csrc.nist.gov/publications/fips/fips46-3/fi...